package cn.lcsjsxy.junit.year2023.real;

/**
 * 题目4：
 * 输入小写的字符串。如字符串前缀为ab开头，则将前缀ab替换为ef并打印出替换后字符串，
 * 返回文字“替换前缀后的字符串为:”和替换后字符串值；如后缀为cd并且前缀不为ab，替换字符串中所有cd为gh并打印出替换后字符串，返回文字“替换cd后的字符串为:”和替换后字符串值；
 * 否则全部字母大写输出，返回文字“大写字母的字符串为:”和转换后的字符串值。
 * 编写程序代码，使用JUnit框架编写测试类对编写的程序代码进行测试，测试类中设计最少的测试数据满足条件覆盖测试，测试类使用参数化测试（@Parameters）完成测试。
 * 使用assertEquals判断期望结果值和实际返回值是否一致。
 */
public class StringProcessor {

    public static String processString(String input) {
        if (input.startsWith("ab")) {
            // 替换前缀 ab 为 ef
            String replacedString = "ef" + input.substring(2);
            System.out.println(replacedString);
            return "替换前缀后的字符串为: " + replacedString;
        } else if (input.endsWith("cd") && !input.startsWith("ab")) {
            // 替换所有 cd 为 gh
            String replacedString = input.replace("cd", "gh");
            System.out.println(replacedString);
            return "替换cd后的字符串为: " + replacedString;
        } else {
            // 全部字母大写
            String upperCaseString = input.toUpperCase();
            System.out.println(upperCaseString);
            return "大写字母的字符串为: " + upperCaseString;
        }
    }
}